<?php
namespace cf;

require_once dirname(__FILE__).'/mailer/class.phpmailer.php';
require_once dirname(__FILE__).'/mail.php';

class Cart
{
	static public function order($name, $email='', $phone='', $address='', $comment='', $notifyGroup='admin', $notifyCustomer=true)
	{
		global $db;
		$user = \cf\User::getLoggedIn();

		$productList = '';
		$products = \cf\api\cart\getList();
		
		if (count($products)<2){
			return false;
		}
		
		for ($i=1; $i<count($products); ++$i) {
			$productList .= "{$products[$i]['id']} {$products[$i]['name']} [{$products[$i]['price']}] - {$products[$i]['amount']} <br>";
		}
		$productList .= "<br><strong>Итого</strong>: {$products[0]['total_price']}";

		execQuery("
			INSERT INTO cf_orders (created,customer_name, customer_email, customer_phone, customer_address, customer_comments, comments)
			VALUES(NOW(),:name, :email, :phone, :address, :comments, :products)",
			array('name'=>$name, 'email'=>$email, 'phone'=>$phone, 'address'=>$address, 'comments'=>$comment, 'products'=>$productList)
		);
		$orderId = $db->lastInsertId();

		\cf\api\cart\clear();

		$msgParams = array(
			'name'=>$name,
			'email'=>$email,
			'phone'=>$phone,
			'address'=>$address,
			'comment'=>$comment,
			'order'=>$orderId,
			'total'=>array_shift($products),
			'products'=>$products
		);
		if ($notifyGroup) {
			$emails = query2vector(
				"SELECT email FROM cf_users INNER JOIN cf_user_roles ON cf_users.id=cf_user_roles.user_id WHERE cf_user_roles.role_id=:id",
				array('id'=>$notifyGroup)
			);
			if (!empty($emails)) {
				$tpl = new MailTemplate('admin_purchase_notify');
				$mail = new \PHPMailer();
				$mail->CharSet = 'UTF-8';
				$mail->Subject = $tpl->parseSubject($msgParams);
				$mail->MsgHTML($tpl->parseBody($msgParams));
				foreach ($emails as $a) {
					$mail->AddAddress($a);
				}
				$mail->Send();
			}
		}
		if ($notifyCustomer && $email) {
			$tpl = new MailTemplate('user_purchase_notify');
			$mail = new \PHPMailer();
			$mail->CharSet = 'UTF-8';
			$mail->Subject = $tpl->parseSubject($msgParams);
			$mail->MsgHTML($tpl->parseBody($msgParams));
			$mail->AddAddress($email);
			@$mail->Send();
		}

		return $orderId;
	}
}

?>